package com.graduation.check.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

@Mapper
public interface TeacherStatisticsMapper {
    
    /**
     * 获取基础统计数据
     */
    Map<String, Object> getBasicStatistics(
            @Param("startDate") LocalDateTime startDate,
            @Param("endDate") LocalDateTime endDate,
            @Param("major") String major,
            @Param("className") String className
    );
    
    /**
     * 获取风险分析数据
     */
    Map<String, Object> getRiskAnalysis(
            @Param("startDate") LocalDateTime startDate,
            @Param("endDate") LocalDateTime endDate
    );
    
    /**
     * 获取专业分布统计
     */
    List<Map<String, Object>> getMajorDistribution(
            @Param("startDate") LocalDateTime startDate,
            @Param("endDate") LocalDateTime endDate
    );
    
    /**
     * 获取班级分布统计
     */
    List<Map<String, Object>> getClassDistribution(
            @Param("startDate") LocalDateTime startDate,
            @Param("endDate") LocalDateTime endDate,
            @Param("major") String major
    );
    
    /**
     * 获取最近活动统计
     */
    Map<String, Object> getRecentActivity();
    
    /**
     * 获取提交趋势数据
     */
    List<Map<String, Object>> getSubmissionTrends(
            @Param("days") Integer days,
            @Param("period") String period
    );
    
    /**
     * 获取学生活跃度分析数据
     */
    Map<String, Object> getStudentActivity();
}
